package listbyorder.access001_100.test44;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/5/31 19:31
 */
public class Solution1 {

    // 方法一： 暴力递归
    public boolean isMatch(String s, String p) {
        if (p.equals("")) return s.equals("");
        return getAns(s, p, 0, 0);
    }

    private boolean getAns(String s, String p, int cs, int cp) {
        if (cs == s.length()) {
            if (cp < p.length()) {
                return p.charAt(cp) == '*' && getAns(s, p, cs, cp + 1);
            }
            return true;
        }
        if (cp == p.length()) return false;
        if (s.charAt(cs) == p.charAt(cp) || p.charAt(cp) == '?') {
            return getAns(s, p, cs + 1, cp + 1);
        }
        if (p.charAt(cp) == '*') {
            return getAns(s, p, cs + 1, cp) || getAns(s, p, cs + 1, cp + 1) || getAns(s, p, cs, cp + 1);
        }
        return false;
    }
}
